home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Programmer Power Tools
/
Programmer Power Tools.iso
/
c
/
jazlib.arc
/
WINDOW.DMO
< prev
next >
Wrap
Text File
|
1986-07-02
|
4KB
|
188 lines
#include <jaz.h>
#include <keys.h>
#include <jzscreen.h>
#include <gscreen.h>
char *wtext1[] = {
"Welcome to the JazSoft \"C\" Library",
"This demo illustrates the use of some",
"of the screen and window routines.",
"If you are interested in obtaining",
"Source code and the libraries to over",
"125 functions, Contact:",
"JazSoft Software (Jack A. Zucker)",
"301-794-5950 301-794-8763 CIS:75766,1336",
"Press any key to continue...",
""
};
char *wtext2[] = {
"The first example shows how to overlay",
"a window with another one. The first window",
"is still there. It's just hiding underneath",
"the second one!",
"Here, I'll show you...",
""
};
char *wtext3[] = {
"The second example shows",
"how to move a window to",
"another part of the screen",
"Use the arrow keys and then",
"Press <Enter> when done.",
""
};
char *wtext4[] = {
"We can even change",
"the color of the window.",
"It's as easy as:",
""
};
char *wnum[] = {
"ONE...",
"TWO...",
"THREE...",
""
};
main()
{
TWINDOW *wptr[10]; /* pointer to window structure */
TWINDOW *originalscreen;
int w,wrow,wcol;
int wch,wscan;
originalscreen = jzappend(&g_header,0,0,0,25,80,0xff);
#if ! DEBUG
jzlogo();
#endif
jzclswnd(0xff);
wptr[0] = jzopnwnd(0,5,25,45,11,WHITE,BLUE);
showtext(wtext1);
wptr[1] = jzcpywnd(wptr[0],1);
getch();
wptr[2] = jzopnwnd(2,10,32,45,7,BLACK,RED);
showtext(wtext2);
wptr[3] = jzcpywnd(wptr[2],3);
for (w = 0 ; w < 5 ; w ++) {
if (w & 1) jzrstwnd(wptr[1]);
else jzrstwnd(wptr[3]);
jzdelay(18L);
}
wptr[4] = jzopnwnd(4,12,40,30,7,BLUE,CYAN);
showtext(wtext3);
wptr[5] = jzcpywnd(wptr[4],5);
wcol = 40; /* init column */
wrow = 12; /* init row */
do {
if (wch = jzinkey(&wscan)) { /* not a special char */
if (wch == 13) break; /* exit loop on enter key */
}
else
switch (wscan) {
case UARR : if (wrow > 0) {
wrow --;
jzrstwnd(wptr[4]); /* restore previous window */
wptr[4]->row1--;
wptr[4]->row2--;
jzsavwnd(wptr[4]);
jzmovwnd(wptr[5],wrow,wcol);
}
break;
case DARR : if (wrow < 17) {
wrow ++;
jzrstwnd(wptr[4]); /* restore previous window */
wptr[4]->row1++;
wptr[4]->row2++;
jzsavwnd(wptr[4]);
jzmovwnd(wptr[5],wrow,wcol);
}
break;
case LARR : if (wcol > 0) {
wcol --;
jzrstwnd(wptr[4]); /* restore previous window */
wptr[4]->col1--;
wptr[4]->col2--;
jzsavwnd(wptr[4]);
jzmovwnd(wptr[5],wrow,wcol);
}
break;
case RARR : if (wcol < 50) {
wcol ++;
jzrstwnd(wptr[4]); /* restore previous window */
wptr[4]->col1++;
wptr[4]->col2++;
jzsavwnd(wptr[4]);
jzmovwnd(wptr[5],wrow,wcol);
}
break;
}
} while (-1);
wptr[6] = jzopnwnd(6,0,0,26,8,BLACK,MAGENTA);
showtext(wtext4);
wptr[7] = jzcpywnd(wptr[6],7);
for (w = 0; *wnum[w] ; w ++) {
locate(w+3,0);
wprintf(wnum[w]);
jzclrwnd(wptr[7],(w << 5) + 1);
jzdelay(18L);
}
for (w = 6 ; w >= 0 ; w -= 2) {
jzdelay(18L);
jzclswnd(w);
}
jzloccur(23,0);
}
showtext(fstr)
char **fstr;
{
int w;
for (w = 0 ; *fstr[w] ; w ++) {
locate(w,0);
clickwrite(fstr[w]);
}
}
clickwrite(fstr)
char *fstr;
{
while (*fstr) {
wprintf("%c",*fstr++);
#if ! DEBUG
soundon(20000);
jzdelay(1L);
soundoff();
#endif
}
}